
using System.Threading.Tasks;

namespace ZR.Model.ProdManage.Dto
{
    /// <summary>
    /// 一级装箱查询对象
    /// </summary>
    public class ProdOnePackQueryDto : PagerInfo
    {
        /// <summary>
        /// DMS订单 
        /// </summary>
        public string DmsOrderNo { get; set; }
        /// <summary>
        /// 计划号 
        /// </summary>
        public string PlanNo { get; set; }
        /// <summary>
        /// 装箱批次 
        /// </summary>
        public string PackBatchNo { get; set; }
        /// <summary>
        /// 箱号 
        /// </summary>
        public string PackNo { get; set; }
        /// <summary>
        /// 装箱状态 
        /// </summary>
        public string PackStatus { get; set; }
        /// <summary>
        /// 包装类型 
        /// </summary>
        public string PackingType { get; set; }
    }

    /// <summary>
    /// 一级装箱输入输出对象
    /// </summary>
    public class ProdOnePackDto
    {
        /// <summary>
        /// 包装id 
        /// </summary>
        [Required(ErrorMessage = "包装id不能为空")]
        [ExcelColumn(Name = "包装id")]
        [ExcelColumnName("包装id")]
        public string PackId { get; set; }

        /// <summary>
        /// DMS订单 
        /// </summary>
        [Required(ErrorMessage = "DMS订单不能为空")]
        [ExcelColumn(Name = "DMS订单")]
        [ExcelColumnName("DMS订单")]
        public string DmsOrderNo { get; set; }

        /// <summary>
        /// 计划号 
        /// </summary>
        [Required(ErrorMessage = "计划号不能为空")]
        [ExcelColumn(Name = "计划号")]
        [ExcelColumnName("计划号")]
        public string PlanNo { get; set; }

        /// <summary>
        /// 仓库 
        /// </summary>
        [ExcelColumn(Name = "仓库")]
        [ExcelColumnName("仓库")]
        public string WareCode { get; set; }

        /// <summary>
        /// 装箱批次 
        /// </summary>
        [Required(ErrorMessage = "装箱批次不能为空")]
        [ExcelColumn(Name = "装箱批次")]
        [ExcelColumnName("装箱批次")]
        public string PackBatchNo { get; set; }

        /// <summary>
        /// 箱号 
        /// </summary>
        [Required(ErrorMessage = "箱号不能为空")]
        [ExcelColumn(Name = "箱号")]
        [ExcelColumnName("箱号")]
        public string PackNo { get; set; }

        /// <summary>
        /// 装箱开始时间 
        /// </summary>
        [ExcelColumn(Name = "装箱开始时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
        [ExcelColumnName("装箱开始时间")]
        public DateTime? PackStartTime { get; set; }

        /// <summary>
        /// 装箱结束时间 
        /// </summary>
        [ExcelColumn(Name = "装箱结束时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
        [ExcelColumnName("装箱结束时间")]
        public DateTime? PackEndTime { get; set; }

        /// <summary>
        /// 装箱状态 
        /// </summary>
        [Required(ErrorMessage = "装箱状态不能为空")]
        [ExcelColumn(Name = "装箱状态")]
        [ExcelColumnName("装箱状态")]
        public string PackStatus { get; set; }

        /// <summary>
        /// 包装类型 
        /// </summary>
        [Required(ErrorMessage = "包装类型不能为空")]
        [ExcelColumn(Name = "包装类型")]
        [ExcelColumnName("包装类型")]
        public string PackingType { get; set; }

        /// <summary>
        /// 长 
        /// </summary>
        [ExcelColumn(Name = "长")]
        [ExcelColumnName("长")]
        public decimal PackLength { get; set; }

        /// <summary>
        /// 宽 
        /// </summary>
        [ExcelColumn(Name = "宽")]
        [ExcelColumnName("宽")]
        public decimal PackWidth { get; set; }

        /// <summary>
        /// 高 
        /// </summary>
        [ExcelColumn(Name = "高")]
        [ExcelColumnName("高")]
        public decimal PackHeight { get; set; }

        /// <summary>
        /// 重 
        /// </summary>
        [ExcelColumn(Name = "重")]
        [ExcelColumnName("重")]
        public decimal PackWeight { get; set; }

        /// <summary>
        /// 净重 
        /// </summary>
        [ExcelColumn(Name = "净重")]
        [ExcelColumnName("净重")]
        public decimal NetWeight { get; set; }

        /// <summary>
        /// 毛重 
        /// </summary>
        [ExcelColumn(Name = "毛重")]
        [ExcelColumnName("毛重")]
        public decimal GrossWeight { get; set; }

        /// <summary>
        /// GroupCode 
        /// </summary>
        [ExcelColumn(Name = "GroupCode")]
        [ExcelColumnName("GroupCode")]
        public string GroupCode { get; set; }

        /// <summary>
        /// 取消人 
        /// </summary>
        [ExcelColumn(Name = "取消人")]
        [ExcelColumnName("取消人")]
        public string CancelUser { get; set; }

        /// <summary>
        /// 取消时间 
        /// </summary>
        [ExcelColumn(Name = "取消时间")]
        [ExcelColumnName("取消时间")]
        public long? CancelTime { get; set; }

        /// <summary>
        /// SerialNumber 
        /// </summary>
        [ExcelColumn(Name = "SerialNumber")]
        [ExcelColumnName("SerialNumber")]
        public long? SerialNumber { get; set; }

        /// <summary>
        /// 填充件组ID 
        /// </summary>
        [ExcelColumn(Name = "填充件组ID")]
        [ExcelColumnName("填充件组ID")]
        public int? GroupId { get; set; }

        /// <summary>
        /// 版本 
        /// </summary>
        [ExcelColumn(Name = "版本")]
        [ExcelColumnName("版本")]
        public int? Version { get; set; }

        /// <summary>
        /// 发送qms标志（0：未发，1：发送） 
        /// </summary>
        [ExcelColumn(Name = "发送qms标志（0：未发，1：发送）")]
        [ExcelColumnName("发送qms标志（0：未发，1：发送）")]
        public bool SendFlag { get; set; }

        /// <summary>
        /// 车型 
        /// </summary>
        [ExcelColumn(Name = "车型")]
        [ExcelColumnName("车型")]
        public string CarType { get; set; }

        /// <summary>
        /// 工艺编号 
        /// </summary>
        [ExcelColumn(Name = "工艺编号")]
        [ExcelColumnName("工艺编号")]
        public string TechnologyNo { get; set; }

        /// <summary>
        /// 打印状态 
        /// </summary>
        [Required(ErrorMessage = "打印状态不能为空")]
        [ExcelColumn(Name = "打印状态")]
        [ExcelColumnName("打印状态")]
        public string PrintState { get; set; }

        /// <summary>
        /// 上传状态 
        /// </summary>
        [Required(ErrorMessage = "上传状态不能为空")]
        [ExcelColumn(Name = "上传状态")]
        [ExcelColumnName("上传状态")]
        public string PostbackState { get; set; }

        /// <summary>
        /// 创建人 
        /// </summary>
        [ExcelColumn(Name = "创建人")]
        [ExcelColumnName("创建人")]
        public string CreateBy { get; set; }

        /// <summary>
        /// 创建时间 
        /// </summary>
        [ExcelColumn(Name = "创建时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
        [ExcelColumnName("创建时间")]
        public DateTime? CreateTime { get; set; }

        /// <summary>
        /// 更新人 
        /// </summary>
        [ExcelColumn(Name = "更新人")]
        [ExcelColumnName("更新人")]
        public string UpdateBy { get; set; }

        /// <summary>
        /// 更新时间 
        /// </summary>
        [ExcelColumn(Name = "更新时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
        [ExcelColumnName("更新时间")]
        public DateTime? UpdateTime { get; set; }

        /// <summary>
        /// 备注 
        /// </summary>
        [ExcelColumn(Name = "备注")]
        [ExcelColumnName("备注")]
        public string Remark { get; set; }



        [ExcelColumn(Name = "装箱状态")]
        public string PackStatusLabel { get; set; }
        [ExcelColumn(Name = "包装类型")]
        public string PackingTypeLabel { get; set; }
        [ExcelColumn(Name = "车型")]
        public string CarTypeLabel { get; set; }
        [ExcelColumn(Name = "打印状态")]
        public string PrintStateLabel { get; set; }
        [ExcelColumn(Name = "上传状态")]
        public string PostbackStateLabel { get; set; }
    }


    /// <summary>
    /// 推送一级订单对象
    /// </summary>
    public class WmsOnePackDto
    {
        /// <summary>
        /// DMS订单
        /// </summary>
        public string dmsOrderNo { get; set; }
        /// <summary>
        /// 计划号
        /// </summary>
        public string planNo { get; set; }
        /// <summary>
        /// 装箱批次
        /// </summary>
        public string packBatchNo { get; set; }
        /// <summary>
        /// 箱号
        /// </summary>
        public string packNo { get; set; }
        /// <summary>
        /// 装箱开始时间
        /// </summary>
        public DateTime? packStartTime { get; set; }
        /// <summary>
        /// 装箱结束时间
        /// </summary>
        public DateTime? packEndTime { get; set; }
        /// <summary>
        /// 装箱状态（1进行2完成3已装箱4已装柜9取消）
        /// </summary>
        public string packStatus { get; set; }
        /// <summary>
        /// 仓库
        /// </summary>
        public string wareCode { get; set; }
        /// <summary>
        /// 包装类型
        /// </summary>
        public string packingType { get; set; }
        /// <summary>
        /// 长
        /// </summary>
        public decimal? packLength { get; set; }
        /// <summary>
        /// 宽
        /// </summary>
        public decimal? packWidth { get; set; }
        /// <summary>
        /// 高
        /// </summary>
        public decimal? packHeight { get; set; }
        /// <summary>
        /// 重
        /// </summary>
        public decimal? packWeight { get; set; }
        /// <summary>
        /// 净重
        /// </summary>
        public decimal? netWeight { get; set; }
        /// <summary>
        /// 毛重
        /// </summary>
        public decimal? grossWeight { get; set; }
        public string groupCode { get; set; }
        /// <summary>
        /// 取消人
        /// </summary>
        public long? cancelUser { get; set; }
        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTime? cancelTime { get; set; }
        public long? serialNumber { get; set; }
        /// <summary>
        /// 填充件组ID
        /// </summary>
        public int? groupId { get; set; }

        public string remark { get; set; }
        /// <summary>
        /// 版本
        /// </summary>
        public int version { get; set; }
        /// <summary>
        /// 发送qms标志（0：未发，1：发送）
        /// </summary>
        public bool sendFlag { get; set; }
        /// <summary>
        /// 车型
        /// </summary>
        public string carType { get; set; }
        /// <summary>
        /// 工艺编号
        /// </summary>
        public string technologyNo { get; set; }

        /// <summary>
        /// 一级包装明细
        /// </summary>
        public List<WmsOnePackDetailDto> detail { get; set; }
    }
}